import { neo4jRequest } from '@/api/request'
import axios from 'axios';
import { ElMessage } from 'element-plus';

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 10000
});

// 添加请求拦截器
service.interceptors.request.use(config => {
  return config;
}, error => {
  console.error('请求错误:', error);
  return Promise.reject(error);
});

// 修改响应拦截器
service.interceptors.response.use(response => {
  // 统一处理非200状态码
  if (response.status !== 200) {
    return Promise.reject(new Error(response.data.message || '请求异常'))
  }
  return response.data // 直接返回data字段
}, error => {
  console.error('响应错误:', error)
  const message = error.response?.data?.message || 
                 error.message || 
                 '网络连接异常，请检查服务器状态'
  ElMessage.error(`请求失败: ${message}`)
  return Promise.reject(error)
})

/**
 * 搜索公司
 * @param {Object} params - 查询参数
 * @param {string} params.keyword - 搜索关键词
 * @returns {Promise} - 返回查询结果
 */
export function searchCompanies(params) {
  return neo4jRequest({
    url: '/companies/search',
    method: 'get',
    params
  }).then(response => {
    // 确保返回的是数组格式
    return response.data || [];
  });
}

/**
 * 获取公司详情
 * @param {string} id - 公司ID
 * @returns {Promise} - 返回公司详情
 */
export function getCompanyDetail(id) {
  return neo4jRequest({
    url: `/companies/${id}`,
    method: 'get'
  });
}

/**
 * 搜索产品
 * @param {Object} params - 搜索参数
 * @param {string} params.keyword - 搜索关键词
 * @returns {Promise} - 返回搜索结果
 */
export function searchProducts(params) {
  return neo4jRequest({
    url: '/graph-analysis/search-products',
    method: 'get',
    params
  });
} 